#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

#define LOG "log.txt"


int main()
{
  //O_WRONLY:读写
  //O_CREAT:创建文件
  //O_TRUNC:清空文件
  //O_APPENT:追加
  
  //创建文件需要设置权限，权限受到umask影响
  umask(0);

  int pd = open(LOG, O_WRONLY|O_CREAT|O_TRUNC, 0664);//w+：读写，文件不存在创建文件
  //int pd = open(LOG, O_WRONLY|O_CREAT|O_APPEND, 0664);//a+：追加，文件不存在创建文件
 
  if(pd == -1) printf("pd:%d error:%d errorstr:%s\n", pd, errno, strerror(errno));

  char str[1024];
  ssize_t n = read(pd, str, sizeof(str) - 1);//读取文件字符串，预留一个位置存放'\0'
  if(n > 0)
  {
    str[n] = '\0';
    printf("%s/n",str);
  }

 // int cnt = 5;
 // while(cnt)
 // {
 //   char buffer[128];
 //   snprintf(buffer, sizeof(buffer), "hello file:%d\n", cnt);
 //    //写入
 //   write(pd, buffer, strlen(buffer));//文件不会识别\0，在文件中\0是以乱码的形式存在
 //   cnt--;
 // }

  close(pd);


  return 0;
}




//int main()
//{
//  //FILE* fp = fopen(FPATH, "w+");
//  FILE* fp = fopen(LOG, "a");//a表示追加
//  if(fp == NULL)
//  {
//    perror("fopen");
//    exit(1);
//  }
//
//  const char* str = "hello world!";
//  char buffer[256] = { '\0' };
//  const char* str1 = "aaaaaaaaaaaaaa\n";
//
//  if(fgets(buffer, sizeof(buffer), fp) != NULL)//读取文件不会按行读取
//    printf("%s\n", buffer);
//
// // int cnt = 5;
// // while(cnt)
// // {
// //   //fputs(str, fp);
// //   //fprintf(fp, "%s:%d\n", str, cnt);
// //   //snprintf(buffer, sizeof(buffer), "%s file test : %d\n", str, cnt);
// //   //fputs(buffer, fp);
// //   //fputs(str1, fp);
// //   
// //   //fprintf(stdout, "%s:%d\n", str, cnt);
//
// //   cnt--;
// // }
//
//  fclose(fp);
//
//  return 0;
//}
